package example;

import java.io.*;
import java.util.Scanner;

//从源文件中逐字节读出文件内容  复制到目标文件中去
public class CopyContent {
    public static void main(String[] args) {
        //1.输入文件路径校验
        //校验思路：对于源文件我们需要判断其是不是一个正常的文件
        //对于目标文件，我们只需要判断其父目录是否存在即可
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入源文件路径");
        String sourcePath=scanner.nextLine();
        File srcFile=new File(sourcePath);
        if(!srcFile.isFile()){
            System.out.println("文件路径输入有误");
            return;
        }
        System.out.println("请输入目标文件路径");
        String targetPath=scanner.nextLine();
        File targetFile=new File(targetPath);
        if(!targetFile.getParentFile().exists()){
            System.out.println("目标文件路径输入有误");
            return;
        }
        //2.文件复制
        try (InputStream inputStream=new FileInputStream(srcFile);
             OutputStream outputStream=new FileOutputStream(targetFile)){
            while(true){
                byte[] bytes=new byte[1024];
                int len=inputStream.read(bytes);
                System.out.println("len="+len);
                if(len==-1){
                    return;
                }
                //采用这种方式进行复制，给出具体的大小，如果不足1024个字节是多少就是多少，节省空间
                outputStream.write(bytes,0,len);
            }

        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
